package com.cloudkinto.service.platform;

import com.cloudkinto.entity.PlatformStoreDo;
import com.cloudkinto.entity.RakutenMarkRecordDo;
import com.cloudkinto.service.consumer.vo.StockToPlatformConsumerReq;
import com.cloudkinto.service.consumer.vo.amazon.AmazonConsumerReq;
import com.cloudkinto.service.consumer.vo.amazon.Inventory;
import com.cloudkinto.service.consumer.vo.amazon.PlatStoreConsumerReq;
import com.cloudkinto.service.consumer.vo.amazon.fulfillment.AmazonMarkShipConsumerReq;
import com.cloudkinto.service.platform.vo.amazon.stock.InventoryAmazonEntity;
import com.cloudkinto.service.platform.vo.store.StoreAmazonAddReq;
import com.cloudkinto.vo.stock.PlatformSkuStockDto;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * <p>
 *  service接口
 * </p>
 * @author hua
 * @since 2024-12-25
 */
public interface PlatformOrderAmazonSyncService {

    String updateAmazonOrdersHistory(Long storeId, String orderNumber);

    String testGetOrderByNumber(String orderNumber, Date beginTime, Date endTime, Long storeId);

    Map<String, Object> getOrderByNumber(String orderNumber, Long storeId);
    String updateAmazonOrders(PlatStoreConsumerReq req);

    void platOrderAmazonSync();

    String updateAmazonOrders(PlatformStoreDo storeDo, Date beginTime, Date endTime, String orderNumber, boolean isHistory, Long syncId);

    void consumerUpdateAmazonItems(AmazonConsumerReq req);

    String authorizeNow(StoreAmazonAddReq req, Long userId, Long companyId);

    void getAuthorizeMsg(Map<String, String> map, Long userId, Long companyId);

    void makeShip(AmazonMarkShipConsumerReq req);

    String getFeed(RakutenMarkRecordDo req);

    void syncMarkRecord();

    void syncStockToPlatformRecord();

    void setStockByStoreId(StockToPlatformConsumerReq req);

    String uploadFeedsForInventory(List<InventoryAmazonEntity> integerListEntry, PlatformStoreDo storeDo, Long userId);


    void amazonGetItemList();

    Map<String, Object> syncListingsItems(PlatformStoreDo storeDo, String packageHierarchySku);
}
